package com.worksmap.core.util;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class StringUtil {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
//			String str="中国人.民工";3715868370
//			String format="^[a-zA-Z0-9_\\-&\u4e00-\u9fa5]{4,32}$";
//		 Pattern pattern= Pattern.compile(format);  
//		 Matcher matcher = pattern.matcher(str);
//		 System.out.println(""+matcher.find());
		String[] ips = new String[] { 
//				"1.85.21.8","1.85.21.8","101.226.33.199","101.226.33.199","101.226.33.225","101.226.33.225","101.226.33.228","101.226.33.228","101.226.33.228","101.226.33.228","101.226.33.228","101.226.33.228","101.226.65.102","101.226.65.102","101.226.65.102","101.226.65.102","101.226.65.102","101.226.65.108","101.226.65.108","101.226.65.109","101.226.65.109","101.226.66.21","101.226.66.21","101.226.66.21","101.228.166.97","101.228.166.97","101.64.176.211","101.64.176.211","101.64.176.211","101.64.176.211","106.80.236.137","106.80.236.137","106.80.236.137","111.161.127.138","111.161.127.138","111.173.122.59","111.173.122.59","111.20.118.52","111.20.118.52","112.231.211.244","112.231.211.244","112.64.235.253","112.64.235.253","112.64.235.253","112.90.90.20","112.90.90.20","112.90.90.20","112.90.90.21","112.90.90.21","113.139.70.59","113.57.216.93","113.57.216.93","113.57.216.93","114.138.1.187","114.138.1.187","114.231.118.156","114.231.118.156","115.193.167.185","115.193.167.185","116.252.189.123","116.252.189.123","116.55.229.131","116.55.229.131","118.113.221.74","118.113.221.74","119.4.56.134","119.4.56.134","119.4.57.27","119.4.57.27","119.4.57.28","119.4.57.28","119.4.99.7","119.4.99.7","119.4.99.7","119.4.99.7","119.4.99.7","119.6.126.134","119.6.126.134","120.128.2.3","120.128.2.3","120.128.2.6","120.128.2.6","120.128.5.187","120.128.5.187","121.14.148.163","121.14.148.163","121.41.238.108","121.41.238.108","121.41.238.95","121.41.238.95","122.189.65.61","122.189.65.61","122.194.203.34","122.194.203.34","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.225.36.200","122.225.36.200","123.126.50.183","123.126.50.183","123.126.50.183","123.126.50.183","123.126.50.183","123.159.205.88","123.159.205.88","123.159.205.88","123.159.205.90","123.159.205.90","123.159.205.91","123.159.205.91","123.159.205.93","123.159.205.93","123.165.75.204","123.165.75.204","123.165.75.204","123.165.75.204","124.91.58.15","124.91.58.15","125.113.97.143","125.113.97.143","125.115.164.211","125.115.164.211","125.115.164.211","125.120.251.2","125.120.251.2","125.39.16.210","125.39.16.210","125.77.55.227","125.77.55.227","14.17.29.91","14.17.29.91","171.123.169.36","171.123.169.36","180.153.160.199","180.153.160.199","180.153.160.199","180.153.163.191","180.153.163.191","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.215","180.153.201.215","180.153.205.253","180.153.205.253","180.153.205.253","180.153.206.25","180.153.206.25","180.153.213.141","180.153.213.141","180.153.213.141","180.153.214.178","180.153.214.178","180.153.214.178","180.153.214.182","180.153.214.182","180.153.214.199","180.153.214.199","180.153.214.199","183.2.151.165","183.2.151.165","183.61.26.100","183.61.26.100","202.97.134.2","202.97.134.2","202.97.189.2","202.97.189.2","211.155.120.240","211.155.120.240","218.72.250.70","218.72.250.70","218.81.182.188","218.81.182.188","218.81.54.71","218.81.54.71","219.139.130.99","219.139.130.99","219.140.176.38","219.140.176.38","219.140.176.38","219.140.176.38","219.233.173.115","219.233.173.115","219.233.173.115","219.233.173.115","219.233.173.115","220.165.179.36","220.165.179.36","220.242.82.8","220.242.82.8","220.242.82.8","221.123.166.210","221.123.166.210","221.123.166.210","221.123.166.210","221.178.171.244","221.178.171.244","221.194.156.24","221.194.156.24","221.194.156.24","222.192.185.132","222.192.185.132","222.192.185.132","222.192.185.133","222.192.185.133","222.192.185.133","222.192.185.133","222.216.57.239","222.216.57.239","222.33.37.202","222.33.37.202","222.33.37.202","222.36.116.215","222.36.116.215","222.36.116.215","222.43.225.210","222.43.225.210","222.43.225.210","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.73.77.54","222.73.77.54","222.73.77.54","27.13.199.179","27.13.199.179","27.13.199.179","27.14.216.212","27.14.216.212","27.154.33.62","27.154.33.62","27.8.180.205","27.8.180.205","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","60.0.121.130","60.0.121.130","60.13.236.252","60.13.236.252","60.186.85.127","60.186.85.127","61.136.95.182","61.136.95.182","61.136.95.183","61.136.95.183","61.177.134.115","61.177.134.115","61.237.7.106","61.237.7.106","61.237.7.106"
	//			"61.160.66.49","121.8.45.125","14.111.221.206","124.112.224.67","111.149.135.28","222.66.234.246","222.66.234.246","114.88.187.69","180.170.116.63","121.41.238.90","123.189.6.70","114.84.196.36","49.221.232.233","180.155.126.28","49.66.54.12","183.239.186.216","49.73.154.254","183.28.77.103","183.239.186.71","180.172.106.103","123.232.209.116","219.156.6.218","101.228.151.173","120.192.231.179","113.200.113.155","114.228.141.105","222.94.38.57","61.172.171.254","101.244.99.24","114.250.75.42","122.225.36.193","123.120.130.151","115.238.41.162","114.250.83.223","58.35.141.15","180.122.144.117","180.155.27.176","14.155.54.38","124.235.82.25","222.64.4.202","180.159.41.250","123.119.170.115","42.2.155.45","114.92.26.97","183.135.240.199","122.78.88.163","116.227.127.151","14.110.134.79","113.91.15.161","111.174.233.30","106.3.103.139","116.227.98.158","110.217.101.101","111.150.54.23","27.156.34.105","101.229.117.11","123.120.175.106","110.178.7.122","115.193.179.47","182.112.79.211","110.179.168.55","59.53.243.142","115.215.144.173","218.26.7.172","112.81.218.71","110.77.16.120","222.71.55.41","221.200.70.85","122.194.13.132","121.15.253.38","115.192.130.247","123.184.5.45","113.227.248.130","124.79.193.203","175.42.14.77","171.211.13.4","121.229.53.152","118.113.221.74","117.11.146.97","110.253.144.72","110.185.56.132","175.165.170.9","116.113.36.112","221.226.81.62","123.184.102.187","119.114.176.240","27.184.69.36","114.86.76.148","114.82.10.233","125.215.44.69","119.59.215.0","210.21.225.248","222.172.167.126","112.82.236.165","101.36.31.214","106.113.103.78","1.194.152.113","115.204.43.193","61.148.242.134","120.35.40.54","1.85.21.8","121.34.103.200","182.111.136.235","111.164.237.173","139.226.160.21","223.21.141.251","222.242.121.56","183.40.70.111","87.217.102.128","61.241.223.101","112.11.7.241","60.186.201.141","223.14.31.52","123.83.154.56","58.246.152.87","125.37.37.13","180.109.29.103","222.243.71.192","119.40.43.5","120.0.137.28","58.34.75.160","60.177.88.22","222.179.55.66","221.1.157.56","122.247.218.62","221.205.81.221","221.205.118.3","59.52.113.233","60.13.236.248","118.114.126.205","119.142.49.171","106.3.103.157","116.55.229.131","218.26.233.153","125.39.16.213","125.65.232.33","58.35.126.87","113.66.13.238","115.197.131.50","114.250.96.91","114.221.26.175","180.109.142.220","180.174.57.78","123.114.101.201","113.200.136.149","114.91.182.191","101.244.171.155","114.248.175.162","222.213.52.40","222.71.176.119","115.44.168.94","113.205.124.106","125.85.108.154","119.7.54.183","58.25.161.120","180.152.216.167","124.14.21.121","218.79.125.103","221.226.84.218","114.112.45.101","119.233.152.58","113.79.60.251","183.135.245.187","125.118.87.70","124.135.11.238","116.28.157.109","101.68.56.53","125.119.244.90","122.234.160.66","1.189.160.170","122.159.38.57","115.175.70.63","27.16.60.30","60.26.208.222","111.161.31.176","117.88.126.160","113.223.197.28","122.235.189.254","60.185.36.80","60.176.183.40","59.174.193.248","122.88.165.4","180.111.11.111","113.9.226.135","112.231.46.96","219.140.200.80","58.212.124.118","222.45.134.208","125.122.190.40","112.112.33.151","220.188.40.253","118.134.0.166","14.120.111.27","113.46.49.240","113.135.81.102","124.79.61.192","125.70.77.130","180.106.5.240","117.72.241.21","183.162.143.217","112.86.209.103","182.88.247.197","222.90.101.95","182.40.28.113","111.224.74.45","122.194.13.236","115.229.103.38","182.135.131.154","111.20.118.52","60.212.74.16","171.36.19.97","122.233.208.149","221.3.67.187","114.231.164.60","114.81.208.9","112.102.22.119","114.138.34.232","123.145.127.50","14.108.128.21","14.216.56.220","125.112.63.179","115.194.97.141","120.6.162.111","114.248.13.168","121.229.176.9","222.70.232.124","1.90.135.35","115.204.141.58","106.113.118.164","125.40.5.61","222.90.74.74","113.141.252.172","115.229.19.201","111.165.40.145","222.35.148.253","118.199.20.46","180.171.96.249","183.4.76.37","116.21.89.140","113.140.3.126","119.129.235.113","222.210.205.232","112.4.111.238","124.78.71.131","114.217.73.123","182.124.46.9","110.188.39.125","222.131.107.243","218.70.25.52","114.247.117.1","61.52.129.252","116.237.250.84","116.235.201.231","116.233.47.68","122.242.117.217","122.240.210.42","114.252.5.131","180.117.248.252","119.138.134.39","221.201.9.18","124.204.194.19","111.164.132.88","125.120.86.21","112.94.71.78","202.105.183.90","113.194.120.158","112.94.150.171","125.107.98.60","60.179.70.137","115.192.243.183","218.81.238.128","180.159.168.97","218.81.219.23","183.2.129.106","117.10.29.156","122.194.1.253","171.214.180.100","117.63.31.131","180.170.127.61","219.155.228.212","116.29.184.133","221.208.84.43","211.142.23.235","27.16.209.214","175.189.111.64","175.146.134.179","119.108.94.181","180.168.120.190","222.162.206.61","61.183.235.108","27.16.209.135","122.90.215.67","111.178.165.100","113.77.25.171","59.59.182.179","218.27.64.155","58.49.165.33","222.212.73.127","139.208.165.136","180.154.20.87","110.188.51.39","163.204.235.167","183.145.93.14","183.245.226.134","60.186.75.2","222.64.248.35","122.194.203.34","118.120.131.27","58.101.236.135","111.213.137.21","125.114.25.53","221.221.190.128","58.20.202.195","175.30.36.211","118.181.15.173","110.98.189.160","115.199.158.204","60.182.156.194","115.228.168.63","125.126.203.45","125.127.101.250","114.240.84.124","125.118.65.5","14.18.25.79","27.43.139.184","182.147.82.47","183.128.113.12","125.124.164.210","125.114.114.107","125.89.216.173","222.154.106.127","222.44.183.168","117.43.177.204","123.152.218.80","118.250.11.133","222.45.140.100","101.66.18.216","117.63.181.87","112.82.212.13","125.124.158.227","110.188.91.148","220.191.33.209","183.158.187.23","218.0.102.45","180.115.119.58","223.21.85.49","111.3.87.3","118.114.85.147","116.9.108.215","116.252.188.192","117.84.220.103","115.198.245.71","115.176.245.117","58.216.189.242","123.158.165.125","60.55.8.171","124.129.129.235","121.77.118.230","116.235.148.76","58.19.52.3","222.63.239.164","58.212.85.219","119.179.91.118","121.235.247.145","114.220.9.18","117.88.157.209","123.52.147.254","121.24.38.133","222.223.78.8","117.13.9.59","58.16.12.131","60.185.22.153","112.225.61.128","110.104.28.193","110.103.134.0","113.227.196.160","61.154.9.182","123.165.39.31","183.144.17.243","182.129.15.194","115.213.125.32","27.156.39.139","118.199.250.143","111.161.97.18","111.161.96.243","122.230.8.129","221.232.211.98","114.82.73.48","120.1.84.167","180.171.236.59","125.115.245.188","115.234.96.175","218.73.205.97","183.145.88.229","122.236.35.93","180.172.7.182","27.10.61.42","222.179.55.253","117.57.34.83","123.122.109.36","123.122.97.6","114.251.120.177","221.195.68.210","121.18.73.19","27.190.241.75","117.91.11.163","14.118.204.34","121.14.148.164","120.197.180.78","119.108.3.176","58.208.28.245","113.194.81.132","116.22.136.46","115.218.87.41","116.225.254.25","180.154.1.199","114.91.28.156","124.74.105.2","59.61.44.127","123.156.23.190","58.247.23.163","106.80.254.111","218.201.52.11","221.213.90.65","218.107.16.174","60.13.236.252","117.145.100.128","113.66.248.26","124.78.125.174","114.112.45.93","218.0.99.5","115.236.9.80","121.235.243.240","180.136.202.46","125.73.52.158","125.90.217.117","113.119.113.93","113.121.44.91","183.38.82.27","114.217.153.205","183.184.103.76","183.185.158.185","125.113.230.54","120.128.2.123","122.232.106.145","110.178.86.159","111.173.69.13","221.232.27.151","119.117.116.66","171.216.202.97","110.52.159.118","58.45.99.106","222.214.149.86","222.130.239.93","14.114.121.142","125.39.114.76","119.128.143.90","116.26.25.216","117.136.33.63","113.85.182.58","218.108.159.210","115.215.242.131","123.83.158.98","123.165.183.199","116.76.67.15","59.44.12.54","61.177.119.236","111.213.58.236","116.232.146.37","114.95.171.179","125.121.135.206","183.93.104.108","58.100.8.223","118.112.135.18","116.1.81.58","111.227.9.158","118.183.13.184","115.193.195.111","122.224.241.232","106.81.3.149","218.109.74.209","122.230.1.100","58.101.20.236","183.153.93.17","122.230.130.153","222.36.244.182","117.14.20.247","113.118.213.227","122.65.227.92","1.84.175.136","1.83.70.254","220.168.210.108","27.21.30.236","222.242.32.163","183.208.48.25","112.81.127.1","110.80.95.77","60.223.169.142","125.77.53.108","60.214.67.137","218.89.30.211","101.86.195.140","117.70.14.108","180.155.135.119","114.88.8.228","59.38.37.238","61.172.186.70","58.34.186.229","69.121.253.116","61.134.252.104","171.81.101.84","114.217.36.223","60.210.72.149","1.85.187.3","223.209.247.14","117.32.153.178","49.76.208.118","139.209.128.56","112.243.169.185","123.119.161.8","211.161.104.217","180.171.23.107","121.77.199.190","118.120.98.125","123.233.11.217","122.189.72.90","119.98.143.124","120.12.101.202","101.24.62.17","122.75.138.131","125.115.173.248","61.173.176.212","119.118.109.19","175.51.96.118","116.3.99.29","119.119.179.86","114.219.34.222","119.138.129.238","222.50.146.237","223.73.110.53","180.158.93.77","114.91.49.163","115.230.226.215","110.254.0.197","114.226.194.111","183.150.21.21","115.70.102.201","124.77.240.165","124.15.212.8","140.237.128.185","60.177.84.24","115.193.248.54","183.2.45.100","218.14.45.128","115.204.53.242","115.225.209.125","112.254.96.214","122.4.64.254","183.145.190.111","112.15.83.39","118.247.34.210","27.202.126.73","58.100.169.172","113.75.27.85","116.1.100.98","118.198.134.139","222.134.217.74","180.121.121.234","113.65.231.217","112.122.216.178","101.23.63.64","120.33.16.172","120.14.254.44","115.207.27.195","117.79.232.148","116.231.173.233","123.173.39.139","58.209.110.54","123.86.23.41","218.31.57.146","183.93.180.200","120.36.222.67","110.84.8.44","222.209.1.212","222.216.207.117","124.152.219.76","118.181.46.170","113.108.127.2","121.19.93.134","123.233.220.5","115.173.237.42","113.234.95.56","211.160.72.30","118.124.138.17","61.183.64.118","122.236.22.51","121.41.238.55","59.44.71.110","116.253.220.159","202.107.201.231","223.94.188.54","122.96.49.2","223.65.143.124","222.49.70.189","60.5.166.186","115.194.88.164","122.88.144.205","125.65.133.119","222.94.211.94","180.142.216.247","211.161.217.117","101.26.157.24","121.28.135.91","220.186.139.160","180.126.202.153","123.114.76.207","222.67.21.247","114.94.10.102","222.129.195.196","124.235.195.155","110.242.63.150","123.156.35.127","125.113.215.180","125.122.35.97","113.240.7.85","122.96.221.206","27.216.69.178","113.123.161.28","59.56.103.67","115.207.49.248","60.182.126.134","120.12.52.236","110.252.109.178","115.194.20.33","223.166.98.224","183.146.252.0","110.253.50.47","116.55.229.131","180.106.4.225","49.76.214.106","182.124.177.210","183.198.179.99","113.231.179.178","123.135.107.201","113.46.24.202","123.118.203.107","123.123.137.145","111.164.65.185","117.73.228.173","27.212.183.167","113.124.92.94","125.40.57.42","110.210.28.19","183.45.118.9","123.118.114.73","114.249.224.139","118.181.45.62","59.173.98.164","122.189.65.61","123.126.50.183","114.61.40.181","175.0.82.99","122.230.183.34","219.136.138.243","60.181.228.153","183.156.23.80","60.188.45.25","182.146.140.185","123.145.4.157","114.232.113.183","123.117.25.106","58.38.21.251","125.115.11.221","61.237.7.106","101.16.100.241","121.77.46.160","122.241.176.126","124.119.231.51","183.245.48.123","27.151.111.58","60.208.242.17","122.224.129.162","60.181.51.147","220.160.64.201","60.13.37.228","122.94.228.216","121.33.119.59","219.136.168.97","221.193.207.147","183.145.91.248","221.234.215.241","183.204.82.64","180.171.64.152","113.121.74.17","114.250.223.204","125.115.187.221","60.190.88.110","182.148.111.119","124.114.249.98","220.191.28.7","222.242.106.147","125.39.179.121","116.225.170.215","111.173.122.59","175.51.28.116","183.248.86.121","58.34.54.50","121.63.64.198","113.141.83.157","113.141.99.190","14.221.131.213","111.179.149.132","121.41.238.61","123.165.195.68","180.140.93.170","183.145.5.140","222.84.132.25","183.93.163.213","119.4.57.27","180.123.54.124","125.126.240.28","124.116.201.106","123.174.205.50","113.141.187.125","180.154.37.56","61.172.15.45","116.227.200.253","117.64.84.157","182.132.91.172","123.156.87.44","110.206.15.153","114.221.78.156","125.126.75.111","58.51.224.253","119.138.21.215","106.113.130.73","182.242.205.78","220.182.51.11","101.23.157.150","14.208.46.134","112.254.22.46","221.195.17.160","180.166.68.222","125.80.241.14","222.84.103.54","116.253.1.108","180.140.127.160","113.13.76.80","124.64.62.123","125.114.49.252","58.219.173.150","58.19.182.238","113.128.155.37","182.32.209.92","118.181.246.245","115.215.229.132","220.191.58.175","111.173.213.88","121.235.154.131","101.245.130.163","27.191.203.84","116.232.224.115","175.5.26.240","115.212.23.86","118.248.200.219","61.142.209.146","120.36.119.23","122.74.113.139","113.3.194.208","123.6.144.207","120.128.6.119","58.214.53.38","60.175.239.61","125.71.110.89","218.82.14.121","221.195.69.107","119.33.146.212","171.111.42.163","222.95.56.79","114.60.25.135","119.144.191.165","124.114.203.162","117.63.147.228","116.233.133.134","112.14.219.37","14.25.166.91","111.197.83.206","60.186.238.72","115.198.240.138","59.174.203.75","118.113.16.106","113.98.117.150","222.191.206.129","101.85.139.150","220.112.96.83","61.237.7.106","110.253.143.59","27.187.34.123","221.229.151.88","222.71.85.71","223.64.62.223","118.181.144.227","223.94.23.10","182.201.6.86","123.139.69.3","60.177.139.21","112.80.139.36","112.80.212.8","113.200.136.154","125.41.215.94","122.233.210.189","123.158.159.198","61.182.207.142","113.132.157.178","114.236.250.106","222.212.232.215","124.90.47.214","182.150.229.226","113.0.251.200","218.0.78.186","58.40.194.20","113.96.243.84","113.111.56.108","125.121.88.36","125.120.90.70","119.164.182.236","122.194.13.129","114.225.184.22","221.215.250.248","125.121.60.23","125.120.196.203","117.73.87.29","180.213.43.2","116.234.243.203","110.51.129.31","116.233.215.1","220.180.150.243","218.69.246.6","183.130.180.162","111.193.192.81","182.148.111.59","61.177.134.115","222.71.90.232","119.32.3.45","112.11.200.181","14.18.29.252","180.141.132.165","114.233.46.104","123.148.186.152","125.120.229.108","180.170.22.90","119.6.79.2","113.249.214.3","121.41.238.78","58.100.227.75","61.150.110.214","219.145.222.178","182.88.1.127","114.61.233.78","58.34.148.64","222.222.24.146","120.36.12.20","121.207.215.228","111.173.130.126","180.155.101.78","58.51.136.95","182.90.41.32","61.177.134.115","222.93.76.167","183.239.186.99","125.122.117.114","27.17.18.2","113.57.129.131","59.173.79.97","117.23.35.195","113.201.125.233","122.235.178.141","171.8.131.223","124.166.225.34","113.226.248.29","117.33.124.199","113.201.210.242","14.153.137.174","222.49.167.7","101.66.222.135","106.2.166.55","112.241.88.203","122.70.39.175","183.188.164.197","118.73.24.254","27.186.104.57","118.114.255.186","113.111.120.121","123.157.158.246","182.240.134.9","116.24.31.130","121.15.104.112","59.172.145.46","119.98.167.75","116.208.9.226","121.41.238.95","183.239.186.70","1.90.149.67","121.30.153.133","115.56.183.90","101.24.181.107","222.212.136.50","180.111.74.57","222.94.191.127","182.139.99.104","116.55.229.130","122.88.53.132","61.185.190.202","180.154.179.127","125.113.154.200","221.179.161.233","114.91.25.243","218.57.97.35","58.216.197.78","175.189.141.140","59.172.46.153","118.249.44.23","121.31.70.47","27.189.77.133","180.171.5.109","118.88.53.149","202.97.189.2","218.87.76.54","119.249.65.140","106.3.103.133","111.226.74.63","110.197.196.90","117.9.9.35","113.57.220.187","58.56.19.46","61.131.87.215","101.68.58.143","124.40.146.229","60.177.245.223","183.42.159.29","140.240.57.86","14.223.21.160","113.247.41.212","61.184.25.135","123.235.38.146","115.222.242.173","58.254.168.39","1.199.198.149","122.238.10.135","182.84.192.117","120.6.234.30","183.66.25.57","223.167.85.193","101.245.167.81","119.133.104.239","119.133.112.247","218.72.138.109","111.214.205.39","61.48.66.154","120.71.0.126","1.28.5.222","14.111.42.165","125.38.26.202","58.49.193.252","223.199.169.229","112.91.70.211","123.53.103.27","58.210.109.204","60.24.147.75","122.193.130.28","221.6.126.7","121.231.84.46","223.65.60.210","171.214.191.161","221.224.86.51","58.253.109.199","60.186.230.4","101.228.218.114","60.176.92.46","222.220.231.136","222.192.185.133","219.233.173.115","182.148.31.141","123.138.47.150","60.221.122.123","221.202.174.18","220.169.46.225","222.244.108.103","110.186.169.4","60.30.68.151","183.154.29.99","118.181.185.127","180.139.171.4","120.128.2.163","123.9.225.163","124.135.100.168","125.113.104.227","123.148.141.61","123.148.200.58","114.86.44.153","101.65.190.86","110.249.1.205","60.5.17.154","220.173.150.251","125.118.172.205","121.41.238.108","14.107.175.168","113.246.146.92","110.204.173.24","101.245.16.190","218.84.32.130","113.65.53.55","125.39.174.58","111.121.69.34","115.214.164.51","218.71.110.80","113.128.17.5","27.38.77.186","183.209.51.252","117.45.174.6","110.152.128.9","112.82.236.4","58.221.177.50","114.93.51.168","115.174.183.60","123.5.130.135","119.161.133.110","114.88.168.250","115.53.159.200","125.86.9.203","183.228.56.139","119.59.141.139","115.44.64.252","59.174.217.175","113.0.52.198","123.115.0.239","183.26.180.32","222.67.144.245","117.82.49.212","117.82.239.211","221.225.244.81","61.149.218.243","175.16.73.122","175.30.170.12","101.71.139.88","120.71.181.48","59.172.94.71","125.40.109.4","180.156.94.50","115.148.164.158","182.84.234.129","221.6.44.12","183.219.227.121","14.135.64.62","112.12.107.180","121.76.49.184","60.55.8.140","220.152.211.248","123.147.240.197","119.6.126.134","122.159.193.174","60.221.36.208","60.175.69.178","218.108.174.8","119.6.108.49","1.89.58.221","61.133.195.2","14.108.12.178","113.76.73.70","121.41.238.47","27.22.214.222","117.43.180.173","49.221.224.183","27.16.76.152","180.173.126.252","221.197.6.65","110.245.160.216","115.174.185.43","60.176.184.224","221.215.250.55","124.128.187.112","27.37.116.74","111.197.149.107","114.246.157.212","58.19.254.244","122.73.231.24","119.179.0.158","175.171.99.220","202.96.85.136","125.39.114.102","113.226.129.71","116.237.124.198","114.88.197.182","36.44.212.137","101.82.238.99","116.23.92.244","113.96.90.204","182.84.31.199","61.140.183.3","117.89.160.86","110.255.122.141","125.33.2.19","110.245.52.101","115.202.166.214","118.135.159.37","122.225.36.205","221.239.150.11","14.204.92.143","113.94.14.69","117.22.179.240","110.217.122.129","61.157.236.167","218.82.129.107","211.141.224.44","110.82.105.64","117.82.237.130","114.102.42.121","111.173.239.240","222.92.25.226","114.61.20.179","116.226.233.118","116.234.209.176","110.248.39.1","119.181.46.98","27.198.111.187","183.95.133.42","60.167.189.227","42.97.103.243","116.209.198.25","60.219.191.195","222.169.127.5","180.148.224.2","111.222.215.47","113.79.228.174","117.148.185.123","113.128.86.158","27.213.93.131","171.36.93.118","125.44.69.156","180.98.0.173","116.24.24.253","113.118.51.49","221.221.185.42","123.79.0.53","113.229.247.2","125.123.99.176","59.54.138.176","182.33.76.174","110.178.159.134","182.124.62.62","115.234.96.17","117.90.183.138","110.217.84.54","118.133.219.11","61.180.16.86","114.216.94.0","49.74.150.206","222.188.123.18","114.112.45.81","117.9.203.21","183.208.12.2","183.235.16.59","118.81.93.55","210.22.164.150","123.139.176.129","123.172.239.164","110.154.173.68","221.137.158.241","58.252.194.234","183.67.137.91","59.174.233.183","113.111.68.128","111.165.37.163","180.157.83.187","113.76.157.110","111.30.94.77","1.59.33.78","113.91.200.67","123.86.142.134","218.56.225.217","114.243.10.248","112.193.11.194","218.9.120.42","58.39.236.15","114.91.172.123","118.181.252.104","112.36.61.68","112.225.42.62","218.56.175.109","101.228.14.220","101.85.243.142","58.210.86.30","121.237.158.121","183.165.40.28","114.231.148.141","175.30.89.39","116.226.23.229","124.79.83.77","218.79.84.170","183.67.221.108","116.227.73.155","222.130.96.116","182.88.13.168","122.93.214.181","115.235.123.131","218.21.32.182","60.184.140.198","124.77.162.195","183.61.27.134","60.55.8.144","114.96.56.54","117.80.122.41","49.84.243.140","115.210.22.51","120.192.240.189","27.187.44.100","122.247.206.75","60.190.27.70","59.47.115.48","180.109.220.214","116.5.39.247","116.226.17.98","113.76.24.221","220.180.14.226","110.152.84.13","218.109.206.136","60.218.198.255","115.211.139.15","111.20.118.52","122.70.124.46","183.134.139.15","58.252.162.131","123.117.21.3","113.0.172.105","182.148.8.253","113.205.73.66","114.91.189.28","114.85.190.140","180.126.9.13","218.58.197.180","112.112.234.247","58.39.214.248","118.81.213.199","222.173.240.230","116.237.200.65","116.235.203.53","218.82.149.154","58.48.82.62","222.69.54.106","27.36.123.134","114.86.172.175","61.158.132.137","116.237.154.14","223.220.84.233","222.64.217.204","1.199.54.241","222.72.6.71","113.194.45.221","114.61.106.252","114.91.184.201","124.152.231.164","111.161.96.154","101.224.94.189","122.242.178.86","221.9.78.110","110.208.183.16","222.216.57.239","125.123.223.104","223.92.254.130","115.206.179.137","114.89.140.140","221.2.227.196","124.160.209.254","61.136.151.8","111.20.186.188","111.167.199.233","113.226.73.230","1.188.233.199","60.216.138.5","115.224.238.115","183.131.13.32","123.191.220.128","59.60.103.137","121.232.11.173","110.166.18.223","125.120.251.2","60.184.126.106","120.194.116.164","120.128.7.43","113.120.47.27","123.116.69.198","112.231.211.244","180.154.138.76","112.240.39.88","116.205.42.68","123.191.229.133","113.92.38.186","111.179.181.215","116.21.86.109","116.226.194.212","101.44.118.173","221.236.78.147","180.90.28.239","110.81.113.45","58.222.254.6","49.66.9.216","114.102.16.210","122.243.114.229","58.19.126.55","171.216.28.96","112.231.235.62","211.92.59.157","220.189.227.186","125.69.48.65","115.211.240.19","61.164.209.61","124.114.39.63","36.250.160.146","223.20.118.148","113.94.94.50","222.168.144.22","218.88.119.241","112.228.20.193","180.155.140.205","121.57.191.130","222.131.34.115","222.59.194.253","118.116.99.77","125.70.162.61","119.108.93.27","183.209.248.115","124.228.132.157","124.235.179.179","222.213.150.245","218.27.217.245","110.112.14.228","118.198.169.79","110.124.38.67","115.199.135.226","113.238.21.29","124.134.55.182","116.236.199.138","58.46.187.166","125.46.221.182","218.67.165.249","183.158.118.252","220.175.234.212","58.246.214.16","27.41.144.26","116.30.244.187","123.245.2.65","222.88.25.38","110.187.16.56","113.232.110.177","59.174.187.111","218.26.158.177","124.72.215.235","175.4.95.15","183.34.90.26","113.92.179.85","222.192.185.132","119.120.97.238","123.116.96.164","182.127.213.133","114.217.82.180","222.162.37.140","112.23.114.65","223.65.140.195","123.83.80.147","101.86.63.108","171.221.112.123","60.212.47.104","122.96.49.6","114.100.229.170","101.228.166.97","117.57.65.15","1.50.3.30","110.210.32.131","183.163.52.134","110.184.173.76","182.113.176.100","116.54.221.237","110.77.60.78","119.123.50.0","61.177.28.210","222.214.201.37","113.238.210.216","119.96.10.184","182.202.174.158","122.139.70.156","175.150.9.49","180.154.176.24","222.142.98.79","124.115.49.44","61.164.209.40","180.159.166.30","60.188.51.141","180.173.103.179","58.35.199.71","58.248.1.164","61.54.204.32","42.49.222.170","140.246.28.28","121.17.184.52","121.30.202.149","221.227.48.178","202.107.96.175","113.57.213.8","58.45.123.41","124.78.17.242","114.112.45.120","220.170.183.56","222.128.149.146","110.86.88.98","114.86.147.208","116.52.22.149","119.41.187.123","60.166.90.52","120.38.215.43","222.70.170.194","182.128.81.185","115.174.238.166","211.143.45.103","182.149.103.188","125.113.57.153","101.228.157.90","124.77.117.216","122.243.252.134","27.13.199.179","180.173.145.73","218.76.216.134","119.86.203.177","121.239.12.55","183.230.34.59","117.62.7.151","58.248.208.238","101.64.176.211","117.40.198.47","119.189.221.76","182.130.16.172","210.53.207.155","222.77.228.171","119.4.57.13","180.156.75.4","119.108.95.106","123.4.3.134","112.112.236.175","120.128.2.114","183.187.32.206","123.93.206.85","61.166.32.142","221.234.103.120","58.34.165.25","58.218.244.16","113.75.33.58","113.132.184.219","119.176.3.117","221.178.171.244","27.193.112.28","183.61.26.100","116.230.113.249","221.3.157.73","114.63.13.128","59.52.234.192","114.95.198.186","116.230.33.99","101.245.166.248","60.14.95.170","183.145.91.216","123.120.162.161","220.179.209.207","119.80.112.132","218.65.5.162","180.154.34.172","222.89.159.251","113.108.192.2","218.63.231.214","27.187.133.85","58.50.130.8","113.83.61.21","180.157.200.57","110.189.201.143","113.56.222.35","116.5.251.253","222.61.218.206","114.105.1.88","112.65.51.103","110.186.195.29","113.120.21.202","123.116.107.214","116.22.96.108","58.56.115.210","110.6.250.7","14.208.209.142","119.51.70.47","61.187.169.220","221.235.188.42","222.47.243.117","219.82.155.28","118.247.111.87","222.50.27.23","124.15.195.63","114.86.47.61","180.154.201.208","180.155.228.47","114.94.218.205","183.156.33.204","113.73.159.44","120.206.21.197","113.135.109.208","61.170.143.4","222.58.254.52","183.219.159.158","125.127.74.54","180.175.3.146","175.1.107.224","182.89.154.250","121.41.238.108","112.117.171.56","221.234.46.103","117.81.200.247","113.92.92.221","114.95.126.241","121.41.238.96","218.11.179.108","219.146.141.199","114.86.194.208","27.186.42.69","222.64.148.43","121.233.27.185","116.234.206.100","122.194.203.34","113.243.77.134","111.174.183.11","27.187.95.152","183.38.93.110","60.211.177.126","58.34.142.85","182.37.41.138","222.168.196.93","180.137.92.41","110.184.190.214","222.66.234.246","58.246.12.93","222.66.234.246","58.246.12.93","58.246.12.93","58.246.12.93","222.66.234.246","58.246.12.93","222.66.234.246","222.66.234.246","222.66.234.246","58.246.12.93","58.246.12.93","180.111.220.171","114.83.170.76","113.91.17.109","60.182.227.228","121.235.212.231","119.32.236.173","123.121.75.173","61.139.51.19","140.224.224.116","220.112.77.190","113.104.199.5","119.96.9.247","125.70.37.95","110.241.61.44","222.71.160.35","222.177.21.169","114.233.48.181","219.130.147.146","182.142.175.243","118.248.0.120","125.125.64.46","60.215.71.160","124.79.229.18","220.165.234.190","119.178.34.195","113.69.213.11","116.53.195.217","182.141.253.82","119.80.98.196","122.189.65.61","222.216.57.239","61.150.43.55","117.160.58.61","42.91.109.203","222.85.0.166","113.225.223.197","122.75.0.160","1.194.252.255","115.222.244.174","182.138.217.82","116.30.149.128","58.38.238.207","111.20.186.206","119.51.23.229","106.80.236.137","123.81.43.228","219.140.176.38","59.172.0.13","123.68.101.243","124.91.58.15","122.224.233.180","122.224.233.180","122.224.233.180","125.115.164.211","122.224.233.180","125.113.97.143","58.246.12.93","119.4.99.7","120.128.5.187","123.168.82.243","27.189.64.231","119.96.149.161","113.110.172.83","222.36.116.215","222.36.116.215","113.231.253.99","222.33.37.202","111.148.4.198","120.12.36.243"		
				//"222.66.234.246","58.246.12.93","58.34.142.85","113.73.159.44","222.66.234.246","101.24.181.107","123.145.127.50","223.65.60.210","113.120.21.202","222.216.57.239","222.45.140.100","180.154.179.127","110.51.129.31","222.64.217.204","58.246.12.93","101.245.16.190","211.161.104.217","112.243.169.185","119.133.112.247","115.204.141.58","180.115.119.58","125.113.154.200","111.161.31.176","183.208.12.2","113.141.99.190","140.237.128.185","119.96.9.247","1.28.5.222","220.112.77.190","122.139.70.156","119.189.221.76","211.161.217.117","171.216.28.96","58.39.236.15","58.248.1.164","58.34.148.64","123.139.176.129","60.13.37.228","222.130.96.116","221.195.68.210","125.115.173.248","112.112.236.175","125.115.164.211","222.72.6.71","27.13.199.179","110.152.84.13","111.178.165.100","60.181.228.153","222.90.74.74","123.156.35.127","123.138.47.150","122.4.64.254","221.2.227.196","101.85.139.150","183.209.51.252","114.219.34.222","61.172.171.254","123.120.130.151","222.243.71.192","222.66.234.246","116.226.17.98","114.100.229.170","180.123.54.124","222.47.243.117","117.40.198.47","125.120.196.203","61.131.87.215","120.33.16.172","118.199.20.46","171.8.131.223","219.140.200.80","221.208.84.43","182.148.111.119","60.212.47.104","60.223.169.142","115.211.240.19","117.79.232.148","113.141.187.125","1.83.70.254","58.210.109.204","110.186.169.4","223.220.84.233","119.133.104.239","121.41.238.108","113.118.51.49","118.198.134.139","222.169.127.5","59.44.12.54","218.87.76.54","113.141.83.157","171.211.13.4","171.36.93.118","60.221.122.123","117.63.181.87","114.81.208.9","221.202.174.18","123.191.229.133","113.98.117.150","101.228.166.97","183.145.190.111","123.5.130.135","113.75.33.58","58.246.12.93","221.205.118.3","183.134.139.15","59.53.243.142","58.246.12.93","183.198.179.99","116.208.9.226","115.176.245.117","183.163.52.134","222.64.4.202","117.43.177.204","183.135.240.199","222.71.55.41","113.96.90.204","113.231.179.178","113.200.136.154","124.64.62.123","180.111.220.171","222.69.54.106","180.171.5.109","115.214.164.51","123.173.39.139","112.254.22.46","125.77.53.108","119.41.187.123","117.9.9.35","122.224.233.180","114.86.76.148","182.132.91.172","59.172.0.13","223.73.110.53","125.46.221.182","122.242.178.86","123.147.240.197","123.158.159.198","113.77.25.171","114.217.36.223","123.135.107.201","171.36.99.188","101.26.113.217","27.155.199.191","116.237.91.70","124.230.159.86","171.117.141.47","116.237.128.241","60.240.207.224","121.34.37.103","221.213.37.242","123.117.226.235","123.120.43.98","1.12.119.243","124.228.10.106","222.56.65.230","125.120.219.126","124.235.184.17","119.164.121.223","101.228.87.21","222.41.187.33","120.128.2.3","171.217.162.137","221.221.134.73","124.78.178.38","112.10.187.114","110.52.157.221","183.11.133.174","116.252.189.123","111.4.124.41","114.249.196.215","112.66.139.42","115.60.43.237","124.90.106.168","27.185.247.144","120.193.21.21","116.231.88.161","60.182.233.219","114.249.170.127","220.197.210.168","119.4.123.65","115.207.52.174","119.166.197.9","14.111.174.68","183.64.202.9","61.163.73.50","218.85.15.52","221.219.168.239","180.156.49.152","123.122.193.209","183.132.94.70","123.126.50.183","122.74.41.121","220.166.109.230","58.241.58.214","113.57.10.78","116.231.232.49","182.148.111.72","222.91.250.92","113.83.48.77","219.138.221.212","113.240.186.154","124.234.8.72","14.134.23.190","125.78.92.111","221.197.103.165","123.184.168.51","116.228.137.174","123.80.88.188","110.198.103.221","183.236.7.187","60.221.198.235","110.104.8.242","124.94.195.53","116.234.116.236","183.61.10.67","183.184.56.51","111.120.146.13","114.62.71.237","218.67.105.85","183.13.156.116","58.246.12.93","112.85.159.182","222.82.8.217","112.84.3.20","182.149.6.161","27.128.22.53","122.139.93.145","115.206.38.54","180.172.77.167","222.82.37.114","125.77.55.227","223.167.96.203","101.228.134.124","171.214.147.194","120.128.2.236","113.227.48.46","121.235.211.232","120.4.23.23","113.246.34.226","27.223.1.94","59.62.226.242","125.122.113.142","58.55.70.73","210.13.84.226","114.88.52.88","182.127.101.191","121.207.141.181","114.82.4.148","61.177.119.234","202.103.17.253","58.221.203.50","222.64.252.213","123.126.50.183","110.189.148.131","122.96.47.42","222.133.14.200","221.221.206.82","123.6.46.37","182.124.46.71","112.112.106.247","222.216.116.37","111.178.53.173","117.69.114.185","125.77.55.227","118.114.155.124","113.200.136.137","123.6.215.95","113.227.208.178","114.95.166.105","124.115.171.108","125.115.164.211","114.249.10.227","125.92.116.67","117.33.65.62","123.128.32.94","182.240.120.90","222.217.123.5","123.112.155.90","183.26.47.91","58.52.3.94","42.91.168.71","114.225.62.241","117.145.101.17","222.82.199.112","171.110.83.95","125.120.211.136","183.198.179.118","117.79.232.188","183.57.233.193","183.57.238.243","125.113.216.202","183.184.110.156","61.140.193.53","221.123.166.210","58.55.61.184","119.165.184.235","58.38.41.90","124.129.78.101","117.40.138.167","171.107.159.119","114.249.34.144","27.185.18.221","221.123.166.210","124.15.229.190","119.112.136.155","117.14.157.78","110.186.33.22","171.113.206.100","114.244.43.70","183.38.124.255","58.246.12.93","1.192.68.14","121.237.112.163","58.19.178.3","114.86.47.202","14.151.4.116","222.66.234.246","218.64.31.34","112.64.7.81","114.91.128.125","221.123.166.210","180.110.219.158","113.141.215.118","58.240.88.94","218.81.230.184","114.244.115.81","163.177.69.38","171.36.94.98","220.242.82.8","180.153.163.191","219.139.130.99","125.39.114.67","119.99.176.156","180.153.201.215","125.33.86.20","113.128.155.209","125.33.75.227","60.11.171.12","219.233.173.115","180.153.213.141","182.32.97.244"
				//"101.226.33.204","14.17.29.91","163.177.69.36","180.153.206.28","36.33.9.209","58.246.12.93","180.88.221.174","27.14.216.136","27.14.216.212","27.8.180.100","27.8.180.117","27.8.180.205","27.8.180.224","27.8.180.240","27.8.180.72","27.8.181.5","27.8.182.196","27.8.182.207","27.8.182.250","27.8.183.201","123.119.170.115","123.119.174.131","180.153.161.55","220.242.82.12","220.242.82.8","220.242.82.9","14.17.34.182","180.152.216.167","222.66.234.246","113.73.167.99","59.33.112.223","59.33.60.151","36.32.2.106","36.32.2.94","36.32.2.97","36.33.9.107","36.33.9.127","36.33.9.223","36.33.9.88","119.6.100.194","119.6.100.195","119.6.100.196","115.213.125.32","180.153.201.215","180.153.214.199","123.232.77.96","124.133.178.100","218.56.200.118","221.0.31.189","101.226.65.109","123.126.50.183","180.153.214.182","111.178.53.173","119.99.176.156","58.55.61.184","180.153.206.25","223.94.23.10","39.187.66.244","111.226.67.12","111.226.74.63","111.226.82.124","120.128.5.178","27.8.182.160","27.8.183.82","202.106.86.129","202.106.86.130","202.106.86.131","123.159.205.88","123.159.205.90","123.159.205.91","123.159.205.94","123.148.141.35","123.148.141.61","123.148.200.58","180.153.163.187","180.153.163.206","222.240.154.116","119.181.46.98","180.153.206.21","222.73.77.54","171.36.93.118","171.36.94.98","171.36.99.188","101.226.65.102","180.153.163.190","220.180.14.226","110.208.183.16","180.153.163.207","180.153.214.180","118.186.128.124","118.186.4.34","123.150.199.197","112.64.235.253","27.14.216.212","27.8.183.1","27.8.183.96","117.144.165.14","117.144.165.18","117.144.165.2","117.144.165.26","117.144.165.30","117.144.50.226","117.144.50.230","101.86.221.204","116.230.52.16","124.77.202.111","110.198.103.221","163.177.69.38","222.66.234.246","58.246.12.93","111.173.122.59","14.17.18.149","219.140.176.38","122.224.233.180","125.120.251.2","14.17.29.87","123.159.205.88","123.159.205.91","123.159.205.93","123.159.205.95"
				"1.85.21.8","1.85.21.8","101.226.33.199","101.226.33.199","101.226.33.225","101.226.33.225","101.226.33.228","101.226.33.228","101.226.33.228","101.226.33.228","101.226.33.228","101.226.33.228","101.226.65.102","101.226.65.102","101.226.65.102","101.226.65.102","101.226.65.102","101.226.65.108","101.226.65.108","101.226.65.109","101.226.65.109","101.226.66.21","101.226.66.21","101.226.66.21","101.228.166.97","101.228.166.97","101.64.176.211","101.64.176.211","101.64.176.211","101.64.176.211","106.80.236.137","106.80.236.137","106.80.236.137","111.161.127.138","111.161.127.138","111.173.122.59","111.173.122.59","111.20.118.52","111.20.118.52","112.231.211.244","112.231.211.244","112.64.235.253","112.64.235.253","112.64.235.253","112.90.90.20","112.90.90.20","112.90.90.20","112.90.90.21","112.90.90.21","113.139.70.59","113.139.70.59","113.57.216.93","113.57.216.93","113.57.216.93","114.138.1.187","114.138.1.187","114.231.118.156","114.231.118.156","115.193.167.185","115.193.167.185","116.252.189.123","116.252.189.123","116.55.229.131","116.55.229.131","118.113.221.74","118.113.221.74","119.4.56.134","119.4.56.134","119.4.57.27","119.4.57.27","119.4.57.28","119.4.57.28","119.4.99.7","119.4.99.7","119.4.99.7","119.4.99.7","119.4.99.7","119.6.126.134","119.6.126.134","120.128.2.3","120.128.2.3","120.128.2.6","120.128.2.6","120.128.5.187","120.128.5.187","121.14.148.163","121.14.148.163","121.41.238.108","121.41.238.108","121.41.238.95","121.41.238.95","122.189.65.61","122.189.65.61","122.194.203.34","122.194.203.34","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.224.233.180","122.225.36.200","122.225.36.200","123.126.50.183","123.126.50.183","123.126.50.183","123.126.50.183","123.126.50.183","123.159.205.88","123.159.205.88","123.159.205.88","123.159.205.90","123.159.205.90","123.159.205.91","123.159.205.91","123.159.205.93","123.159.205.93","123.165.75.204","123.165.75.204","123.165.75.204","123.165.75.204","124.91.58.15","124.91.58.15","125.113.97.143","125.113.97.143","125.115.164.211","125.115.164.211","125.115.164.211","125.120.251.2","125.120.251.2","125.39.16.210","125.39.16.210","125.77.55.227","125.77.55.227","14.17.29.91","14.17.29.91","171.123.169.36","171.123.169.36","180.153.160.199","180.153.160.199","180.153.160.199","180.153.163.191","180.153.163.191","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.15","180.153.201.215","180.153.201.215","180.153.205.253","180.153.205.253","180.153.205.253","180.153.206.25","180.153.206.25","180.153.213.141","180.153.213.141","180.153.213.141","180.153.214.178","180.153.214.178","180.153.214.178","180.153.214.182","180.153.214.182","180.153.214.199","180.153.214.199","180.153.214.199","183.2.151.165","183.2.151.165","183.61.26.100","183.61.26.100","202.97.134.2","202.97.134.2","202.97.189.2","202.97.189.2","211.155.120.240","211.155.120.240","218.72.250.70","218.72.250.70","218.81.182.188","218.81.182.188","218.81.54.71","218.81.54.71","219.139.130.99","219.139.130.99","219.140.176.38","219.140.176.38","219.140.176.38","219.140.176.38","219.140.176.38","219.233.173.115","219.233.173.115","219.233.173.115","219.233.173.115","219.233.173.115","220.165.179.36","220.165.179.36","220.242.82.8","220.242.82.8","220.242.82.8","221.123.166.210","221.123.166.210","221.123.166.210","221.123.166.210","221.178.171.244","221.178.171.244","221.194.156.24","221.194.156.24","221.194.156.24","222.192.185.132","222.192.185.132","222.192.185.132","222.192.185.133","222.192.185.133","222.192.185.133","222.192.185.133","222.216.57.239","222.216.57.239","222.33.37.202","222.33.37.202","222.33.37.202","222.36.116.215","222.36.116.215","222.36.116.215","222.43.225.210","222.43.225.210","222.43.225.210","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.66.234.246","222.73.77.54","222.73.77.54","222.73.77.54","27.13.199.179","27.13.199.179","27.13.199.179","27.14.216.212","27.14.216.212","27.154.33.62","27.154.33.62","27.8.180.205","27.8.180.205","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","58.246.12.93","60.0.121.130","60.0.121.130","60.13.236.252","60.13.236.252","60.186.85.127","60.186.85.127","61.136.95.182","61.136.95.182","61.136.95.183","61.136.95.183","61.177.134.115","61.177.134.115","61.237.7.106","61.237.7.106","61.237.7.106"
		};
		StringBuffer ipNumbBuffer=new StringBuffer();
		String driver = "com.mysql.jdbc.Driver";
		// URL指向要访问的数据库名scutcs
		String url = "jdbc:mysql://10.184.129.240:3306/bizconf?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8";
		// MySQL配置时的用户名
		String user = "bizconf";
		// Java连接MySQL配置时的密码
		String password = "bizconf";
			// 加载驱动程序
			try {
				Class.forName(driver);
			} catch (ClassNotFoundException e1) {
				e1.printStackTrace();
			}
			// 连接数据库
			Connection conn=null;
			try {
				conn = DriverManager.getConnection(url, user, password);
			} catch (SQLException e) {
				e.printStackTrace();
			}
			Statement statement = null;
			if(conn!=null){
				try {
					statement = conn.createStatement();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			 


		
		//SELECT INET_NTOA(1850534367) AS eachIp,city,isp_name,isp_code FROM t_ip_test WHERE start_num<=1850534367 AND end_num >=1850534367
		long eachLong=0;
		String eachSql="";
		int ii=0;
		int ispNullCount=0;
		int ispCount=0;
		for(String eachIp:ips){
			ii++;
			eachLong=ipToNumber(eachIp);
			eachSql="SELECT INET_NTOA("+eachLong+") AS eachIp,city,isp_name FROM t_ip_locator WHERE start_num<="+eachLong+" AND end_num >="+eachLong +" order by end_num asc limit 1";
		//	ipNumbBuffer.append(";"+ipToNumber(eachIp)+"@"+ipToNumber(eachIp)+"#"+ipToNumber(eachIp));
			ResultSet rs;
			try {
				rs = statement.executeQuery(eachSql);
				while(rs.next()) {
					if(isEmpty(rs.getString("isp_name"))){
						ispNullCount++;
					//	System.out.println(ii+"-->>"+rs.getString("eachIp") +","+rs.getString("city")+","+rs.getString("isp_name"));
					}else{
						ispCount++;
					}
					System.out.println(rs.getString("city"));
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
			


		}
		try {
			conn.close();
			conn=null;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		System.out.println("IP总数："+ii+";ISP空数量："+ispNullCount+";isp有值数量："+ispCount);
		System.out.println(ipNumbBuffer.toString());
		//System.out.println(ipToNumber("124.95.129.166"));
//		System.out.println(Base64.encode("join/joinpage?joinType=3&cId=1196&scode=81317079","UTF-8"));
//
//		System.out.println(Base64.decode("am9pbi9qb2lucGFnZT9qb2luVHlwZT0zJmNJZD0xMTk2JnNjb2RlPTgxMzE3MDc5","UTF8"));
		// TODO Auto-generated method stub
//		StringBuffer tmpBuffer=new StringBuffer("012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");
//		tmpBuffer.append("01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");
//		List<String> myList=splitByLength(tmpBuffer.toString(),23);
//		for(String eachString:myList){
//			System.out.println("-->>"+eachString);
//			
//			
//			
//			
//		}
		
//		long time1=System.currentTimeMillis();
//		for(int ii=0;ii<10000000;ii++){
//			isNotBlank("                                 ");
//		}
//		long time2=System.currentTimeMillis();
//		
//		System.out.println("isNotBlank  usertime:"+(time2-time1)+" ms");
//		 time1=System.currentTimeMillis();
//		for(int ii=0;ii<10000000;ii++){
////			isEmpty("                                 ");
//		}
//		 time2=System.currentTimeMillis();
//		
//		System.out.println(" isEmpty  usertime:"+(time2-time1)+" ms");
//		MD5 md5=new MD5();
//		System.out.println(" admin md5:"+md5.encrypt("admin")+" ");
		
//		String tempStr="adbcedfdsa";
//
//		System.out.println(tempStr);
//		System.out.println(tempStr.replaceAll("d", "5"));
		
	}
	
	public static String parseAsciiByString(String str){
		
		return null;
	}

	public static String parseStringByAscii(String ascii){
		
		
		return null;
	}
	
	//读取InputStream
	public static byte[] readInputStream(InputStream inStream) throws Exception {
		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len = 0;
		while ((len = inStream.read(buffer)) != -1) {
			outStream.write(buffer, 0, len);
		}
		byte[] data = outStream.toByteArray();// 网页的二进制数据
		outStream.close();
		inStream.close();
		return data;
	}
	
	
	
	//根据长度将字符串分割一个字符List
	
	public static List<String> splitByLength(StringBuffer buffer,int splitLength){
		long time1=System.currentTimeMillis();
		List<String> tmpList=null;
		if(buffer!=null && buffer.length() >0 && splitLength > 0){
			int bufferLength=buffer.length();

			System.out.println("String bufferLength-->>"+bufferLength);
			tmpList=new ArrayList<String>();
			if(splitLength > bufferLength){
				tmpList.add(buffer.toString());
			}else{
				int listSize=bufferLength / splitLength;
				if(bufferLength / splitLength > 0){
					listSize++;
				}
				for(int ii=1;ii<=listSize;ii++){
					if(ii==listSize){
						tmpList.add(buffer.substring(splitLength*(ii-1)));
					}else{
						tmpList.add(buffer.substring(splitLength*(ii-1),splitLength*ii));
					}
				}
				
				
			}
		}

		long time2=System.currentTimeMillis();
		System.out.println("buffer User Time-->>"+(time2-time1));
		return tmpList;
	}
	

	//根据长度将字符串分割一个字符List
	
	public static List<String> splitByLength(String str,int splitLength){
		long time1=System.currentTimeMillis();
		List<String> tmpList=null;
		if(str!=null && str.length() >0 && splitLength > 0){
			int strLength=str.length();
			System.out.println("String strLength-->>"+strLength);
			tmpList=new ArrayList<String>();
			if(splitLength > strLength){
				tmpList.add(str.toString());
			}else{
				int listSize=strLength / splitLength;
				if(strLength / splitLength > 0){
					listSize++;
				}
				for(int ii=1;ii<=listSize;ii++){
					if(ii==listSize){
						tmpList.add(str.substring(splitLength*(ii-1)));
					}else{
						tmpList.add(str.substring(splitLength*(ii-1),splitLength*ii));
					}
				}
				
				
			}
		}
		long time2=System.currentTimeMillis();
		System.out.println("String User Time-->>"+(time2-time1));
		return tmpList;
	}
	
    /**
     * 检查字符串是否为空
     * <p>Checks if a String is not empty (""), not null and not whitespace only.</p>
     *
     * <pre>
     * StringUtils.isNotBlank(null)      = false
     * StringUtils.isNotBlank("")        = false
     * StringUtils.isNotBlank("bob")     = true
     * </pre>
     *
     * @param str  the String to check, may be null
     * @return <code>true</code> if the String is
     *  not empty and not null and not whitespace
     * @since 2.0
     */
    public static boolean isNotBlank(String str) {
    	boolean isBlank = true;
    	if (str == null || "".equals(str.trim())) {
    		isBlank = false;
		}
        return isBlank;
    }
    
    

	public static boolean isEmpty(String str) { 
		boolean empty=false;
		if(str==null || str.trim().length() <=0){
			empty=true;
		}
		return empty;
	}

	
	//返回信息
		public static  String returnJsonStr(int status, Object object){
				JSONObject json = new JSONObject();
				JSONArray jsonArrSite = new JSONArray();
				json.put("status", status);
				jsonArrSite.add(object.toString());
				json.put("userBase", jsonArrSite);
				json.put("message",object.toString());
				return json.toString();
		}
		
		public static String firstUpper(String str){
			if(isEmpty(str)){
				return null;
			}
			char[] chars;
			chars=str.toCharArray();
			chars[0]-=32;
			String upperStr=new String(chars);
			chars=null;
			return upperStr;
		}
		
		
		
		public static String getIpAddr(HttpServletRequest request) {
	        String ip = request.getHeader("x-forwarded-for");
	        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	            ip = request.getHeader("Proxy-Client-IP");
	        }
	        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	            ip = request.getHeader("WL-Proxy-Client-IP");
	        }
	        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	            ip = request.getRemoteAddr();
	        }
	        System.out.println("getIpAddr:" + ip);
	        return ip;
	    }
		
		//将127.0.0.1形式的IP地址转换成十进制整数，这里没有进行任何错误处理   
	    public static long ipToNumber(String strIp){  
	        long[] ip = new long[4];  
	        //先找到IP地址字符串中.的位置   
	        int position1 = strIp.indexOf(".");  
	        int position2 = strIp.indexOf(".", position1 + 1);  
	        int position3 = strIp.indexOf(".", position2 + 1);  
	        //将每个.之间的字符串转换成整型   
	        ip[0] = Long.parseLong(strIp.substring(0, position1));  
	        ip[1] = Long.parseLong(strIp.substring(position1+1, position2));  
	        ip[2] = Long.parseLong(strIp.substring(position2+1, position3));  
	        ip[3] = Long.parseLong(strIp.substring(position3+1));  
	        return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];  
	    }  
	      
	    //将十进制整数形式转换成127.0.0.1形式的ip地址   
	    public static String longToIP(long longIp){  
	        StringBuffer sb = new StringBuffer("");  
	        //直接右移24位   
	        sb.append(String.valueOf((longIp >>> 24)));  
	        sb.append(".");  
	        //将高8位置0，然后右移16位   
	        sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));  
	        sb.append(".");  
	        //将高16位置0，然后右移8位   
	        sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));  
	        sb.append(".");  
	        //将高24位置0   
	        sb.append(String.valueOf((longIp & 0x000000FF)));  
	        return sb.toString();  
	    }  

		public static String string2Unicodes(String str) {
			StringBuilder unicodes = new StringBuilder();
			if (StringUtils.isEmpty(str)) {
				return "";
			}
			for (char c : str.toCharArray()) {
				unicodes.append((int) c + ",");
			}
			return unicodes.deleteCharAt(unicodes.length() - 1).toString();
		}

}
